import { getAssetLoaderTypes } from "XrFrame/loader/AssetLoader"

// pages/videoResult/index.ts
const _request = require('../../utils/ajax')
const app = getApp<IAppOption>()
export { }
Page({

    /**
     * 页面的初始数据
     */
    data: {
        showProgress:false, // 是否显示下载进度
        progressNumber:25,// 下载进度值
        videoData: {} // 视频数据
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad() {
        app.toLogin((res: any) => {
            wx.getStorage({
                key: 'video',
                success: (cache: any) => {
                    console.log(cache)
                    this.setData({
                        videoData: cache.data
                    })
                    wx.setNavigationBarTitle({
                        title: cache.data.title
                    })
                }
            })
        })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },
    /**
     * 下载文件到本地
     */
    doDownload() {
        wx.showLoading({
            title:'正在下载...',
            mask:true
        })
        // 获取授权状态
        wx.getSetting({
            success:(res:any)=>{
                if(res.authSetting['scope.writePhotosAlbum']){
                    this.downloadVideo()
                }else{
                    //  发起授权请求
                    wx.authorize({
                        scope: 'scope.writePhotosAlbum',
                        success:()=> {
                          this.downloadVideo()
                        },
                        fail:(auth:any)=>{
                            wx.hideLoading()
                            console.log('授权失败:',auth)
                              // 如果提示被拒绝了授权
                              if(auth.errMsg=='authorize:fail:auth deny'){
                                this.setData({
                                    openSetting:true
                                })
                                wx.showModal({
                                    title:'授权',
                                    content:'是否显示打开授权设置按钮',
                                    success:(confirmResult:any)=>{
                                        if(confirmResult.confirm){
                                            this.openSetting()
                                        }
                                    }
                                })
                            }else{
                                wx.showToast({
                                    title:'授权失败',
                                    icon:'error',
                                    mask:true
                                })
                            }
                        }
                      })
                }
            }
        })
    },
    openSetting(){
        wx.openSetting({
            success:(setting:any)=>{
                console.log(setting)
                if(setting.authSetting['scope.writePhotosAlbum']){
                    // this.downloadVideo()
                }
            },
            fail:(err:any)=>{
                console.log(err)
            }
        })
    },
    /**
     * 下载文件到相册
     */
    downloadVideo(){
        wx.hideLoading()
        const videoData:any = {...this.data.videoData}
        this.setData({
            showProgress:true
        })
        const downloadTask=wx.downloadFile({
            url:videoData['url'],
            success:(temp:any)=>{
                wx.saveVideoToPhotosAlbum({
                    filePath:temp.tempFilePath,
                    success:(downloadResult:any)=>{
                        console.log(downloadResult)
                        wx.showToast({
                            title:'视频下载成功',
                            icon:'success',
                            mask:true
                        })
                    },
                    fail:(error:any)=>{
                        console.log(error)
                        if(error.errMsg=='saveVideoToPhotosAlbum:fail cancel'){
                            wx.showToast({
                                title:'操作已取消',
                                icon:'error',
                                mask:true
                            })
                        }else{
                            wx.showToast({
                                title:'视频保存失败',
                                icon:'error',
                                mask:true
                            })
                        }
                    }
                })
            },
            fail:(err:any)=>{
                console.log(err)
            },
            complete:()=>{
                console.log(333333)
                this.setData({
                    showProgress:false
                })
            }
        })
        downloadTask.onProgressUpdate((res) => {
            this.setData({
                progressNumber:res.progress
            })
          })
    }
})